package com.major.crowd.mvc.config;

import com.major.crowd.entity.Admin;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;

import java.util.Collection;
import java.util.List;

/**
 * 对User类进行扩展，为了获取到原始的Admin对象，因为User对象中仅包含账号和密码
 */

public class SecurityAdmin extends User {

    public static final long serialVersionID = 1L;
    //原始的Admin对象，包含全部属性
    private Admin originalAdmin;

    //构造器             传入原始对象 ⬇           创建角色、权限信息的集合 ⬇
    public SecurityAdmin(Admin originalAdmin, List<GrantedAuthority> authorities) {
        // 调用父类构造器
        super(originalAdmin.getLoginAcct(),originalAdmin.getUserPswd(),authorities);

        // 给本类的this.originalAdmin赋值
        this.originalAdmin = originalAdmin;

        // 将原始的Admin对象中的密码擦除
        this.originalAdmin.setUserPswd(null);
    }

    //对外提供的获取原始Admin对象的方法
    public Admin getOriginalAdmin(){
        return originalAdmin;
    }
}
